package models

import (
	"order_srv/basic/config"
	"time"
)

// 保险信息
type InsuranceInfo struct {
	Id                 int32     `gorm:"column:id;type:int;primaryKey;not null;" json:"id"`
	CarTypeId          int8      `gorm:"column:car_type_id;type:tinyint;comment:车型ID;not null;" json:"car_type_id"`                 // 车型ID，关联不同车型的保险信息
	InsuranceCoverage  string    `gorm:"column:insurance_coverage;type:text;comment:保险覆盖范围;not null;" json:"insurance_coverage"`    // 保险覆盖范围
	TermsAndConditions string    `gorm:"column:terms_and_conditions;type:text;comment:条款和条件;not null;" json:"terms_and_conditions"` // 条款和条件
	ContactInfo        string    `gorm:"column:contact_info;type:varchar(255);comment:联系信息;not null;" json:"contact_info"`          // 联系信息
	IsActive           bool      `gorm:"column:is_active;type:tinyint(1);comment:是否启用;default:1;" json:"is_active"`
	CreateAt           time.Time `gorm:"column:create_at;type:datetime;not null;default:CURRENT_TIMESTAMP;" json:"create_at"`
	UpdateAt           time.Time `gorm:"column:update_at;type:datetime;not null;default:CURRENT_TIMESTAMP;" json:"update_at"`
	DeleteAt           time.Time `gorm:"column:delete_at;type:datetime;default:NULL;" json:"delete_at"`
}

func (i *InsuranceInfo) TableName() string {
	return "insurance_info"
}

// 获取激活的保险信息
func (i *InsuranceInfo) GetActiveInsuranceByCarType(carTypeId int8) (*InsuranceInfo, error) {
	var insurance InsuranceInfo
	err := config.DB.Where("car_type_id = ? AND is_active = 1", carTypeId).First(&insurance).Error
	if err != nil {
		return nil, err
	}
	return &insurance, nil
}
